package com.meilingcloud.activiti.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.meilingcloud.activiti.domain.ActWfShift;
import com.meilingcloud.activiti.domain.dto.ActWfShiftSaveDto;
import com.meilingcloud.activiti.domain.vo.ActShiftDetailVo;

import java.util.List;

/**
 * 转移单据 Service接口
 *
 * @author chenl
 * @date 2021-04-30
 */
public interface IActWfShiftService extends IService<ActWfShift> {

    /**
     * 查询列表
     */
    List<ActWfShift> queryList(ActWfShift actWfShift);

    /**
     * 查询单据列表带任务状态
     */
    List<ActWfShift> queryShiftWithTaskList(ActWfShift actWfShift);

    /**
     * 查询当前部门下的所有用户名
     */
    List<String> queryUserByDept();

    ActShiftDetailVo getShiftDetail(String shiftId);

    boolean saveWfShift(ActWfShiftSaveDto actWfShiftSaveDto);

    /**
     * 完成流程
     */
    boolean completeShift(ActWfShift actWfShift);

    /**
     * 查询当前部门下所有转移单据
     */
    List<ActWfShift> queryShiftInDeptList(ActWfShift actWfShift, List<String> userNames);

    /**
     * 撤销流程
     */
    boolean revoke(String businessKey);
}
